package server.db;

import java.sql.*;

public class Select {
	public static Connection c;

	/**
	 * FUNCIONA
	 */
	public void selectAmigos(Usuario user) {
		try {
			Statement st = c.createStatement();
			String sql = "SELECT amigo " + "FROM amigos " + "WHERE user = "
					+ user.id;
			ResultSet rs = st.executeQuery(sql);
			while (rs.next()) {
				System.out.println(rs.getString("amigo"));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	/**
	 * NO FUNCIONA !
	 */
	public void selectUnaAmistad(Usuario user, Usuario amigo) {
		try {
			Statement st = c.createStatement();
			String sql = "SELECT AMIGO " + "FROM AMIGOS " + "WHERE AMIGO = "
					+ amigo.id + "UNION " + "SELECT USER " + "FROM AMIGOS "
					+ "WHERE USER = " + user.id;
			System.out.println("AMIGOS: ");
			ResultSet rs = st.executeQuery(sql);
			while (rs.next()) {
				System.out.println(rs.getString("amigo"));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * FUNCIONANDO!
	 */
	public void selectUsuario(Usuario user) {
		try {
			Statement stmt = c.createStatement();
			String nombre, apellido, usuario, pregunta;
			int id;
			ResultSet result = stmt
					.executeQuery("SELECT id, nombre, apellido, usuario, pregunta"
							+ " FROM USUARIOS");
			while (result.next()) {
				nombre = result.getString("nombre");
				apellido = result.getString("apellido");
				usuario = result.getString("usuario");
				pregunta = result.getString("pregunta");
				id = result.getInt("id");

				System.out.println(id + " " + nombre + " " + apellido + " "
						+ usuario + pregunta + "/n ");

			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	/**
	 * FUNCIONANDO !
	 */
	public void selectHistorial(Usuario user) {
		try {
			Statement st = c.createStatement();

			String sql = "SELECT HISTORIAL " + "FROM LOGS " + "WHERE id = "
					+ user.id;

			ResultSet rs = st.executeQuery(sql);
			while (rs.next())
				System.out.println(rs.getDate("historial"));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * FUNIONA!
	 */
	public void selectSolicitudesAmistad(Usuario user) {
		try {
			Statement st = c.createStatement();
			String sql = "Select INVITACIONES_PENDIENTES "
					+ "From repositorio " + "where id = " + user.id;
			ResultSet rs = st.executeQuery(sql);
			while (rs.next()) {
				System.out.println(rs.getObject("INVITACIONES_PENDIENTES"));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	/**
	 * FUNCIONA
	 */
	public void selectMensajesPendientes(Usuario user) {
		try {
			Statement st = c.createStatement();
			String sql = "Select MENSAJES_PENDIENTES " + "From repositorio "
					+ "where id = " + user.id;
			ResultSet rs = st.executeQuery(sql);
			while (rs.next()) {
				System.out.println(rs.getObject("MENSAJES_PENDIENTES"));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		try {
			Class.forName("org.sqlite.JDBC");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		// se establece la conexion a la DB
		try {
			c = DriverManager.getConnection("jdbc:sqlite:tablas/chat.db");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		System.out.println("apertura de base de datos correcta ! ");
		Select select = new Select();
		Usuario user = new Usuario();
		user.id = 3;
		user.nombre = "fabian";
		user.apellido = "mancini";
		user.estado = true;
		user.fechaalta = 0;
		user.pregunta = "como me llamo?";
		user.respuesta = "manchi";
		user.password = "1234";
		user.usuario = "manchi";

		Usuario usuario2 = new Usuario();
		user.id = 4;
		user.nombre = "fabian";
		user.apellido = "mancini";
		user.estado = true;
		user.fechaalta = 0;
		user.pregunta = "como me llamo?";
		user.respuesta = "manchi";
		user.password = "1234";
		user.usuario = "manchi";
		
		select.selectAmigos(user);
		select.selectUsuario(user);
		select.selectUnaAmistad(user, usuario2);
		select.selectHistorial(user);
		select.selectSolicitudesAmistad(user);
		select.selectMensajesPendientes(user);
	}

}
